f(true, x, y, z) → g(gt(x, y), x, y, z)
g(true, x, y, z) → f(gt(x, z), x, s(y), z)
g(true, x, y, z) → f(gt(x, z), x, y, s(z))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
↳ QTRS
↳ AAECC Innermost
f(true, x, y, z) → g(gt(x, y), x, y, z)
g(true, x, y, z) → f(gt(x, z), x, s(y), z)
g(true, x, y, z) → f(gt(x, z), x, y, s(z))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
f(true, x, y, z) → g(gt(x, y), x, y, z)
g(true, x, y, z) → f(gt(x, z), x, s(y), z)
g(true, x, y, z) → f(gt(x, z), x, y, s(z))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
f(true, x, y, z) → g(gt(x, y), x, y, z)
g(true, x, y, z) → f(gt(x, z), x, s(y), z)
g(true, x, y, z) → f(gt(x, z), x, y, s(z))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
f(true, x0, x1, x2)
g(true, x0, x1, x2)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
G(true, x, y, z) → F(gt(x, z), x, y, s(z))
F(true, x, y, z) → GT(x, y)
GT(s(u), s(v)) → GT(u, v)
G(true, x, y, z) → F(gt(x, z), x, s(y), z)
G(true, x, y, z) → GT(x, z)
F(true, x, y, z) → G(gt(x, y), x, y, z)
f(true, x, y, z) → g(gt(x, y), x, y, z)
g(true, x, y, z) → f(gt(x, z), x, s(y), z)
g(true, x, y, z) → f(gt(x, z), x, y, s(z))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
f(true, x0, x1, x2)
g(true, x0, x1, x2)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
G(true, x, y, z) → F(gt(x, z), x, y, s(z))
F(true, x, y, z) → GT(x, y)
GT(s(u), s(v)) → GT(u, v)
G(true, x, y, z) → F(gt(x, z), x, s(y), z)
G(true, x, y, z) → GT(x, z)
F(true, x, y, z) → G(gt(x, y), x, y, z)
f(true, x, y, z) → g(gt(x, y), x, y, z)
g(true, x, y, z) → f(gt(x, z), x, s(y), z)
g(true, x, y, z) → f(gt(x, z), x, y, s(z))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
f(true, x0, x1, x2)
g(true, x0, x1, x2)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
GT(s(u), s(v)) → GT(u, v)
f(true, x, y, z) → g(gt(x, y), x, y, z)
g(true, x, y, z) → f(gt(x, z), x, s(y), z)
g(true, x, y, z) → f(gt(x, z), x, y, s(z))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
f(true, x0, x1, x2)
g(true, x0, x1, x2)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
GT(s(u), s(v)) → GT(u, v)
f(true, x0, x1, x2)
g(true, x0, x1, x2)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
f(true, x0, x1, x2)
g(true, x0, x1, x2)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
GT(s(u), s(v)) → GT(u, v)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
G(true, x, y, z) → F(gt(x, z), x, y, s(z))
G(true, x, y, z) → F(gt(x, z), x, s(y), z)
F(true, x, y, z) → G(gt(x, y), x, y, z)
f(true, x, y, z) → g(gt(x, y), x, y, z)
g(true, x, y, z) → f(gt(x, z), x, s(y), z)
g(true, x, y, z) → f(gt(x, z), x, y, s(z))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
f(true, x0, x1, x2)
g(true, x0, x1, x2)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
G(true, x, y, z) → F(gt(x, z), x, y, s(z))
G(true, x, y, z) → F(gt(x, z), x, s(y), z)
F(true, x, y, z) → G(gt(x, y), x, y, z)
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
f(true, x0, x1, x2)
g(true, x0, x1, x2)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
f(true, x0, x1, x2)
g(true, x0, x1, x2)
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
G(true, x, y, z) → F(gt(x, z), x, y, s(z))
G(true, x, y, z) → F(gt(x, z), x, s(y), z)
F(true, x, y, z) → G(gt(x, y), x, y, z)
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
(1) (G(gt(x6, x7), x6, x7, x8)=G(true, x9, x10, x11) ⇒ G(true, x9, x10, x11)≥F(gt(x9, x11), x9, x10, s(x11)))
(2) (gt(x6, x7)=true ⇒ G(true, x6, x7, x8)≥F(gt(x6, x8), x6, x7, s(x8)))
(3) (true=true ⇒ G(true, s(x40), 0, x8)≥F(gt(s(x40), x8), s(x40), 0, s(x8)))
(4) (gt(x41, x42)=true∧(∀x43:gt(x41, x42)=true ⇒ G(true, x41, x42, x43)≥F(gt(x41, x43), x41, x42, s(x43))) ⇒ G(true, s(x41), s(x42), x8)≥F(gt(s(x41), x8), s(x41), s(x42), s(x8)))
(5) (G(true, s(x40), 0, x8)≥F(gt(s(x40), x8), s(x40), 0, s(x8)))
(6) (G(true, x41, x42, x8)≥F(gt(x41, x8), x41, x42, s(x8)) ⇒ G(true, s(x41), s(x42), x8)≥F(gt(s(x41), x8), s(x41), s(x42), s(x8)))
(7) (G(gt(x18, x19), x18, x19, x20)=G(true, x21, x22, x23) ⇒ G(true, x21, x22, x23)≥F(gt(x21, x23), x21, s(x22), x23))
(8) (gt(x18, x19)=true ⇒ G(true, x18, x19, x20)≥F(gt(x18, x20), x18, s(x19), x20))
(9) (true=true ⇒ G(true, s(x45), 0, x20)≥F(gt(s(x45), x20), s(x45), s(0), x20))
(10) (gt(x46, x47)=true∧(∀x48:gt(x46, x47)=true ⇒ G(true, x46, x47, x48)≥F(gt(x46, x48), x46, s(x47), x48)) ⇒ G(true, s(x46), s(x47), x20)≥F(gt(s(x46), x20), s(x46), s(s(x47)), x20))
(11) (G(true, s(x45), 0, x20)≥F(gt(s(x45), x20), s(x45), s(0), x20))
(12) (G(true, x46, x47, x20)≥F(gt(x46, x20), x46, s(x47), x20) ⇒ G(true, s(x46), s(x47), x20)≥F(gt(s(x46), x20), s(x46), s(s(x47)), x20))
(13) (F(gt(x24, x26), x24, x25, s(x26))=F(true, x27, x28, x29) ⇒ F(true, x27, x28, x29)≥G(gt(x27, x28), x27, x28, x29))
(14) (gt(x24, x26)=true ⇒ F(true, x24, x25, s(x26))≥G(gt(x24, x25), x24, x25, s(x26)))
(15) (true=true ⇒ F(true, s(x50), x25, s(0))≥G(gt(s(x50), x25), s(x50), x25, s(0)))
(16) (gt(x51, x52)=true∧(∀x53:gt(x51, x52)=true ⇒ F(true, x51, x53, s(x52))≥G(gt(x51, x53), x51, x53, s(x52))) ⇒ F(true, s(x51), x25, s(s(x52)))≥G(gt(s(x51), x25), s(x51), x25, s(s(x52))))
(17) (F(true, s(x50), x25, s(0))≥G(gt(s(x50), x25), s(x50), x25, s(0)))
(18) (F(true, x51, x25, s(x52))≥G(gt(x51, x25), x51, x25, s(x52)) ⇒ F(true, s(x51), x25, s(s(x52)))≥G(gt(s(x51), x25), s(x51), x25, s(s(x52))))
(19) (F(gt(x30, x32), x30, s(x31), x32)=F(true, x33, x34, x35) ⇒ F(true, x33, x34, x35)≥G(gt(x33, x34), x33, x34, x35))
(20) (gt(x30, x32)=true ⇒ F(true, x30, s(x31), x32)≥G(gt(x30, s(x31)), x30, s(x31), x32))
(21) (true=true ⇒ F(true, s(x55), s(x31), 0)≥G(gt(s(x55), s(x31)), s(x55), s(x31), 0))
(22) (gt(x56, x57)=true∧(∀x58:gt(x56, x57)=true ⇒ F(true, x56, s(x58), x57)≥G(gt(x56, s(x58)), x56, s(x58), x57)) ⇒ F(true, s(x56), s(x31), s(x57))≥G(gt(s(x56), s(x31)), s(x56), s(x31), s(x57)))
(23) (F(true, s(x55), s(x31), 0)≥G(gt(s(x55), s(x31)), s(x55), s(x31), 0))
(24) (F(true, x56, s(x31), x57)≥G(gt(x56, s(x31)), x56, s(x31), x57) ⇒ F(true, s(x56), s(x31), s(x57))≥G(gt(s(x56), s(x31)), s(x56), s(x31), s(x57)))
POL(0) = 0
POL(F(x1, x2, x3, x4)) = -1 - x1 + x2 - x4
POL(G(x1, x2, x3, x4)) = -1 - x1 + x2 - x4
POL(c) = -1
POL(false) = 0
POL(gt(x1, x2)) = 0
POL(s(x1)) = 1 + x1
POL(true) = 0
The following pairs are in Pbound:
G(true, x, y, z) → F(gt(x, z), x, y, s(z))
The following rules are usable:
F(true, x, y, z) → G(gt(x, y), x, y, z)
gt(u, v) → gt(s(u), s(v))
false → gt(0, v)
true → gt(s(u), 0)
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
↳ AND
↳ QDP
↳ NonInfProof
↳ QDP
G(true, x, y, z) → F(gt(x, z), x, s(y), z)
F(true, x, y, z) → G(gt(x, y), x, y, z)
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
(1) (G(gt(x18, x19), x18, x19, x20)=G(true, x21, x22, x23) ⇒ G(true, x21, x22, x23)≥F(gt(x21, x23), x21, s(x22), x23))
(2) (gt(x18, x19)=true ⇒ G(true, x18, x19, x20)≥F(gt(x18, x20), x18, s(x19), x20))
(3) (true=true ⇒ G(true, s(x45), 0, x20)≥F(gt(s(x45), x20), s(x45), s(0), x20))
(4) (gt(x46, x47)=true∧(∀x48:gt(x46, x47)=true ⇒ G(true, x46, x47, x48)≥F(gt(x46, x48), x46, s(x47), x48)) ⇒ G(true, s(x46), s(x47), x20)≥F(gt(s(x46), x20), s(x46), s(s(x47)), x20))
(5) (G(true, s(x45), 0, x20)≥F(gt(s(x45), x20), s(x45), s(0), x20))
(6) (G(true, x46, x47, x20)≥F(gt(x46, x20), x46, s(x47), x20) ⇒ G(true, s(x46), s(x47), x20)≥F(gt(s(x46), x20), s(x46), s(s(x47)), x20))
(7) (F(gt(x30, x32), x30, s(x31), x32)=F(true, x33, x34, x35) ⇒ F(true, x33, x34, x35)≥G(gt(x33, x34), x33, x34, x35))
(8) (gt(x30, x32)=true ⇒ F(true, x30, s(x31), x32)≥G(gt(x30, s(x31)), x30, s(x31), x32))
(9) (true=true ⇒ F(true, s(x55), s(x31), 0)≥G(gt(s(x55), s(x31)), s(x55), s(x31), 0))
(10) (gt(x56, x57)=true∧(∀x58:gt(x56, x57)=true ⇒ F(true, x56, s(x58), x57)≥G(gt(x56, s(x58)), x56, s(x58), x57)) ⇒ F(true, s(x56), s(x31), s(x57))≥G(gt(s(x56), s(x31)), s(x56), s(x31), s(x57)))
(11) (F(true, s(x55), s(x31), 0)≥G(gt(s(x55), s(x31)), s(x55), s(x31), 0))
(12) (F(true, x56, s(x31), x57)≥G(gt(x56, s(x31)), x56, s(x31), x57) ⇒ F(true, s(x56), s(x31), s(x57))≥G(gt(s(x56), s(x31)), s(x56), s(x31), s(x57)))
POL(0) = 0
POL(F(x1, x2, x3, x4)) = -x1 + x2 - x3 + x4
POL(G(x1, x2, x3, x4)) = -x1 + x2 - x3 + x4
POL(c) = -1
POL(false) = 0
POL(gt(x1, x2)) = 0
POL(s(x1)) = 1 + x1
POL(true) = 0
The following pairs are in Pbound:
G(true, x, y, z) → F(gt(x, z), x, s(y), z)
The following rules are usable:
G(true, x, y, z) → F(gt(x, z), x, s(y), z)
gt(u, v) → gt(s(u), s(v))
false → gt(0, v)
true → gt(s(u), 0)
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
↳ AND
↳ QDP
↳ NonInfProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
F(true, x, y, z) → G(gt(x, y), x, y, z)
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
↳ AND
↳ QDP
↳ QDP
↳ DependencyGraphProof
G(true, x, y, z) → F(gt(x, z), x, y, s(z))
G(true, x, y, z) → F(gt(x, z), x, s(y), z)
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))